package org.lanqiao.tjut.zuoyedemo;

import java.util.Scanner;

public class ZuoYe {

	public static void main(String[] args) {
		// 6月5日下午自习作业
		// test01();
		System.out.println("空心等腰三角形方法一：");
		test02();
		System.out.println("实心等腰三角形方法二：");
		test03();
		System.out.println("打印实心等腰三角形方法一:");
		test04();
		System.out.println("打印实心等腰三角形方法二:");
		test05();
		System.out.println("倒直角三角形：");
		test06();
	}

	// 课本66页作业
	private static void test01() {
		double Salary1 = 0.0;// Java工程师月薪
		double Salary2 = 0.0;// Java工程师底薪
		int Score = 0;// Java工程师月完成分数（最小值为0，最大值为150）
		double Days = 0.0;// Java工程师实际工作天数
		double insurance = 0.0;// Java工程师应扣保险数
		int i = -1;// 定义用户选择输入的参数
		while (true) {
			System.out.println("          蓝桥计划Java工程师管理系统          ");
			System.out.println("----------------------------------------");
			System.out.println("1.输入Java工程师资料");
			System.out.println("2.删除指定Java工程师资料");
			System.out.println("3.查询Java工程师资料");
			System.out.println("4.修改Java工程师资料");
			System.out.println("5.计算Java工程师的月薪");
			System.out.println("6.保存新添加的工程师的资料");
			System.out.println("7.对Java工程师信息排序(1编号升序，2姓名升序)");
			System.out.println("8.输出所有Java工程师信息");
			System.out.println("9.清空所有Java工程师的数据");
			System.out.println("10.打印Java工程师数据报表");
			System.out.println("11.从文件重新导入Java工程师数据");
			System.out.println("0.结束（编辑工程师信息后提示保存）");
			Scanner input = new Scanner(System.in);
			System.out.println("请输入您的选择： ");
			i = input.nextInt();// 从控制台获取用户输入的选择
			switch (i) {
			case 1:
				System.out.println("1.输入Java工程师资料");
				break;
			case 2:
				System.out.println("2.删除指定Java工程师资料");
				break;
			case 3:
				System.out.println("3.查询Java工程师资料");
				break;
			case 4:
				System.out.println("4.修改Java工程师资料");
				break;
			case 5:
				System.out.println("请输入Java工程师的底薪");
				Salary2 = input.nextDouble();// 从控制台获取底薪
				System.out.println("请输入Java工程师月完成分数（最小值为0，最大值为150）");
				Score = input.nextInt();// 从控制台获取月工作分数（最小值为0，最大值为150）
				System.out.println("请输入Java工程师实际工作天数");
				Days = input.nextDouble();// 从控制台获取月实际工作天数
				System.out.println("请输入Java工程师应扣保险数");
				insurance = input.nextDouble();// 从控制台获取月应扣保险数
				// 月薪计算公式：底薪+底薪*25%*月工作完成分数/100+15*月实际工作天数-月应扣保险数
				Salary1 = Salary2 + Salary2 * 0.25 * Score / 100 + 15 * Days - insurance;
				System.out.println("Java工程师的月薪为： " + Salary1);
				break;
			case 6:
				System.out.println("6.保存新添加的工程师的资料");
				break;
			case 7:
				System.out.println("7.对Java工程师信息排序(1编号升序，2姓名升序)");
				break;
			case 8:
				System.out.println("8.输出所有Java工程师信息");
				break;
			case 9:
				System.out.println("9.清空所有Java工程师的数据");
				break;
			case 10:
				System.out.println("10.打印Java工程师数据报表");
				break;
			case 11:
				System.out.println("11.从文件重新导入Java工程师数据");
				break;
			case 0:
				System.out.println("退出程序！");
				break;
			default:
				System.err.println("输入错误！");
				break;
			}
			if (i == 0) {// 当用户输入为0时，退出while循环，程序结束
				break;
			}
		}
	}

	// 打印空心等腰三角形（方法一）
	private static void test02() {
		for (int i = 1; i <= 4; i++) {
			switch (i) {
			case 1:
				System.out.println("   *    ");
				break;
			case 2:
				System.out.println("  *  *  ");
				break;
			case 3:
				System.out.println(" *    *  ");
				break;
			case 4:
				System.out.println("********");
				break;
			default:
				System.out.println("输入不合法！");
				break;
			}
		}
		System.out.println(" ");
	}

	// 打印空心等腰三角形（方法二）
	private static void test03() {
		for (int i = 1; i <= 6; i++) { // 定义三角形为六行
			for (int j = 0; j < 6 - i; j++) {
				System.out.print(" ");// 定义每行第一个星号前有几个空格
			}
			// 每行的星号和两个星号间的空格
			for (int k = 0; k < i * 2 - 1; k++) {
				if (k == 0 | k == i * 2 - 2 | i == 6) {// k=0:每行的第一个星号。k==i*2-2：每行的第二个星号。
														// i==6：第六行全部的星号
					System.out.print("*");
				} else {
					System.out.print(" ");// 打印每行两个星号间的空格
				}
			}
			System.out.println();// 打印出每行最后一个星号后，换行
		}
	}

	// 打印实心等腰三角形（方法一）
	private static void test04() {
		for (int i = 1; i <= 4; i++) {
			switch (i) {
			case 1:
				System.out.println("   *   ");
				break;
			case 2:
				System.out.println("  ***  ");
				break;
			case 3:
				System.out.println(" ***** ");
				break;
			case 4:
				System.out.println("********");
				break;
			default:
				System.out.println("输入不合法！");
				break;
			}
		}
		System.out.println(" ");
	}

	// 打印实心等腰三角形（方法二）
	private static void test05() {
		for (int i = 1; i <= 6; i++) { // 定义三角形为六行
			for (int j = 0; j < 6 - i; j++) {
				System.out.print(" ");// 定义每行第一个星号前有几个空格
			}
			// 每行的星号
			for (int k = 0; k < i * 2 - 1; k++) {
				System.out.print("*");
			}
			System.out.println();// 打印出每行最后一个星号后，换行
		}
	}

	// 打印倒直角三角形
	private static void test06() {
		for (int i = 5; i > 0; i--) {
			for (int j = 1; j <= i; j++) {
				System.out.print(" * ");
			}
			System.out.println(" ");
		}
	}

}
